<?php

class Cursos {

    public function post_save($curso) {
        try {
            $sql = "";

            if ($curso->id == 0) {
                //insert
                $sql = "INSERT INTO cursos (nome,publicoAlvo,valorCurso,cargaHoraria,objetivosCurso,idCategoria) VALUES (:nome,:publicoAlvo,:valorCurso,
                :cargaHoraria, :objetivosCurso,:idCategoria)";
            }
            //update
            else {
                $sql = "UPDATE cursos SET nome=:nome,publicoAlvo=:publicoAlvo,valorCurso=:valorCurso,cargaHoraria=:cargaHoraria,
                objetivosCurso=:objetivosCurso,idCategoria=:idCategoria WHERE id = :id";
            }

            $stmt = DB::prepare($sql);
            $stmt->bindParam("nome", $curso->nome);
            $stmt->bindParam("publicoAlvo", $curso->publicoAlvo);
            $stmt->bindParam("valorCurso", DB::decimalToMySql($curso->valorCurso));
            $stmt->bindParam("cargaHoraria", $curso->cargaHoraria);
            $stmt->bindParam("objetivosCurso", $curso->objetivosCurso);
            $stmt->bindParam("idCategoria", $curso->idCategoria);

            if ($curso->id != 0) {
                $stmt->bindParam("id", $curso->id);
            }
            $stmt->execute();

            if ($curso->id != 0) {
                $curso->id = DB::lastInsertId();
                return $curso->id;
            }
        }
        catch (Exception $exc) {

            if ($exc->getMessage() . trim("Duplicate"))
                throw new Exception("Ops! este curso já existe.");
        }
    }

    function get_listAll($filtro) {
        $filtro = "{$filtro}%";

        $sql    = "SELECT * FROM cursos WHERE nome LIKE :nome";
        $stmt   = DB::prepare($sql);
        $stmt->bindParam("nome", $filtro);
        $stmt->execute();
        $result = $stmt->fetchAll();
        return $result;
    }

    function get_list($id) {
        $sql    = "SELECT c.*,cat.id as idCategoria,cat.nome as nomeCategoria FROM cursos c 
            INNER JOIN categorias cat ON c.idCategoria = cat.id WHERE c.id = :id";
        $stmt   = DB::prepare($sql);
        $stmt->bindParam("id", $id);
        $stmt->execute();
        $result = $stmt->fetch();
        return $result;
    }

    function post_delete($curso) {
        try {
            $sql  = "DELETE FROM cursos WHERE id = :id";
            $stmt = DB::prepare($sql);
            $stmt->bindParam("id", $curso->id);
            $stmt->execute();
        }
        catch (Exception $e) {
            throw new Exception($e->getMessage());
        }
    }

}

?>
